iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 25
0
AI & Data

Tensorflow2.0系列 第 25

LSTM-預測股票(一)

  • 分享至 

  • xImage
  •  

我們都知道股價擁有時序的特性,也就是昨天的股票和走勢對於今日的股價或多或少是會有影響的而今天使用的LSTM(長短期記憶模型),但這裡我介紹一個很好用的套件(FinMind)可以爬取股票的資料,也有定期在維護,裡面也不只有股價的資料。

導入套件

pip install FinMind
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

我們可以使用FinMind的功能取得股價,這次我們嘗試的就是這個月股價不斷創高、台灣人稱外資控盤工具的 台積電(2330-TW), 選用的資料從2020-01-01開始

from FinMind.Data import Load
TaiwanStockInfo = Load.FinData(dataset = 'TaiwanStockInfo')
data = Load.FinData(dataset = 'TaiwanStockPrice',select = '2330',date = '2020-01-01')
data.head()

https://ithelp.ithome.com.tw/upload/images/20201005/20130246omsGVEclSL.png

fig=plt.figure(figsize=(20,8))
plt.xticks(rotation = 90)  
ax1 = fig.add_subplot(111)
ax1.plot(data.close,color='red',label='close')
ax1.plot(data.open,color='green',label='open')
plt.legend()
ax2= ax1.twinx()
plt.bar(data.date,data.Trading_Volume.astype('int')//1000)
ax3 = ax1.twinx()
plt.savefig('2330_year.png')

紅色的是收盤價、綠色的線是開盤價,從股票的走勢看來,台積電是突破了前高
https://ithelp.ithome.com.tw/upload/images/20201005/20130246hbLM6dKuYE.png

創建資料集

X_train = [] 
y_train = []
for i in range(10,len(train_set)):
    X_train.append(training_set_scaled[i-10:i-1, 0]) 
    y_train.append(training_set_scaled[i, 0]) 
X_train, y_train = np.array(X_train), np.array(y_train) 
X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], 1))

這次的實作是我參考https://wenwender.wordpress.com/2019/10/18/%E5%AF%A6%E4%BD%9C%E9%80%8F%E9%81%8Elstm%E9%A0%90%E6%B8%AC%E8%82%A1%E7%A5%A8/ 做到這我還有很多不懂的地方,尤其是股票這領域,所以如果上面有講錯的地方請大家多包涵。


上一篇
RNN介紹-LSTM
下一篇
LSTM-預測股票( 二)
系列文
Tensorflow2.030
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言